<?php
    class filter{
       
        static function get_user_input_upper($key,$verify_func='',$need=0,$tips='',$is_upper=1){
            if(!isset($_REQUEST[$key])){
                $_REQUEST[$key]='';
            }
            if($verify_func && !method_exists('filter', $verify_func)){
                throw new my_exception("验证函数".$verify_func."未定义",SYS_ERROR);
            }
            
            if($need && empty($_REQUEST[$key])){
                throw new my_exception("请正确输入".$tips,USER_INPUT_ERROR);
            }
            return self::parse_input($_REQUEST[$key],$verify_func,$need=0,$tips);
        }
        
        static function get_user_input($key,$verify_func='',$need=0,$tips='',$is_upper=0){
            if(!isset($_REQUEST[$key])){
                $_REQUEST[$key]='';
            }
            if($verify_func && !method_exists('filter', $verify_func)){
                throw new my_exception("验证函数".$verify_func."未定义",SYS_ERROR);
            }
            
            if($need && empty($_REQUEST[$key])){
                throw new my_exception("请正确输入".$tips,USER_INPUT_ERROR);
            }
            return self::parse_input($_REQUEST[$key],$verify_func,$need=0,$tips,$is_upper);
        }
        
        static function parse_input($input,$verify_func='',$need=0,$tips='',$is_upper=1){
            
            if(is_array($input)){
                $r=array();
                foreach($input as $key=>$value){
                    $r[$key]=self::parse_input($value,$verify_func,$need,$tips,$is_upper);
                }
                return $r;
            }
            else{
                $input=trim($input);
                if($verify_func){
                    return self::$verify_func($input);
                }
                else{
//                     echo $input;
//                     echo "11";
                    if($is_upper){
//                         echo "22";
                        $input=strtoupper($input);
                    }
//                     echo "33";
                    $input=addslashes($input);
                    $input=strip_tags($input);
                    return $input;
                }
            }
        }
        
        static function verify_phone_num_input(){
            
        }
        
        static function check_phonenum($var){
            if(!preg_match('/^1[3|4|5|7|8][0-9]\d{8}$/',$var)){
                throw new my_exception("手机号码格式错误",USER_INPUT_ERROR);
            }
            else{
                return $var;
            }
        }
        

        static function check_int($var){
            if($var){
                if(!preg_match('/^\-?\d*$/', $var)){
                    throw new my_exception("整数错误".$var,USER_INPUT_ERROR);
                }
                else{
                    return $var;
                }
            }
            return 0;
        }
        
        static function check_time($var){
            if(true){
                if(empty($var)){
                    return "NULL";
                }
                else{
                    return "'".$var."'";
                }
            }
        }
        
        static function check_float($var){
            if($var){
                if(!preg_match('/^\d+\.?\d*$/', $var)){
                    throw new my_exception("浮点数错误".$var,USER_INPUT_ERROR);
                }
                else{
                    return $var;
                }
            }
            return 0;
        }
        

        static function check_money($var){
            if(isset($var)){
                if(!$var){
                    return 0;
                }
                elseif(!preg_match('/^(([1-9]\d*)|(0))(\.(\d){1,2})?$/', $var)){
                    throw new my_exception("金额错误".$var,USER_INPUT_ERROR);
                }
                else{
                    return $var;
                }
            }
            return 0;
        }
        static function check_jine($var){
            if(isset($var)){
                if(!$var){
                    return 0;
                }
                elseif(!preg_match('/^\-?(([1-9]\d*)|(0))(\.(\d){1,2})?$/', $var)){
                    throw new my_exception("金额错误".$var,USER_INPUT_ERROR);
                }
                else{
                    return $var;
                }
            }
            return 0;
        }
        

    }
    
 